home *** CD-ROM | disk | FTP | other *** search
- Path: EU.net!sun4nl!xs4all!usenet
- From: jtv@xs4all.nl (Jeroen T. Vermeulen)
- Newsgroups: comp.sys.amiga.misc
- Subject: Re: OS features
- Date: Fri, 2 Feb 96 03:30:37
- Organization: Leiden University, Mathematics & Computer Science, The Netherlands
- Message-ID: <19960202.7B12650.388B@asd05-06.dial.xs4all.nl>
- References: <DLAA61.2us@inter.NL.net> <4dh2dm$jui@serpens.rhein.de> <1292.6592T166T2158@algonet.se> <4do01q$fmc@serpens.rhein.de> <19960120.7B57BE0.122A3@asd01-04.dial.xs4all.nl> <4dtg0e$1j7@serpens.rhein.de> <19960123.7B89070.14DD@asd07-10.dial.xs4all.nl> <4e384c$13j@serpens.rhein.de>
- NNTP-Posting-Host: asd05-06.dial.xs4all.nl
- Mime-Version: 1.0
- Content-Type: text/plain; charset=iso-8859-1
- Content-Transfer-Encoding: 8bit
- X-NewsSoftware: GRn 2.1 Feb 19, 1994
-
-
- In article <4e384c$13j@serpens.rhein.de> mlelstv@serpens.rhein.de (Michael van Elst) writes:
- >
- > >What is probably meant is that deadlocks must be prevented, where memory is
- > >swapped out that needs to be present in real mem for the swap mechanism as a
- > >whole to work. Of course the task list etc. must also be kept consistent during
- > >Forbid().
- >
- > And more. There is data used within interrupts. It is rather impossible
- > to page in data for interrupt code.
-
- Damn, forgot about those for a moment!
-
-
- > >It would have to lock, of course. With `single-threaded' I mean here that only
- > >one instance of the code could be active at any time (as if it were a task), but
- > >no actual context switch is made (as if it were a library).
- >
- > As I said this is not possible because the driver may consist of several
- > tasks that _do_ require context switches. It also is a waste of time
- > to forbid other tasks to run after one task page-faulted.
-
- As we're talking about implementing a special-purpose device driver here anyway,
- I don't see a reason (yet) why it can't be programmed so as to run in a single
- task.
-
- Once again, this isn't exactly my favourite solution but it could at least be
- possible. As for the wasted time, I've heard it said that with other OS's it's
- often better to have the CPU run idle while swapping than to switch tasks and
- run head-on into a new page fault (I don't _know_ it though).
-
-
- > > - Private memory allocated by the VM subsystem
- >
- > Most of the VM system itself can be in virtual memory. It even
- > makes sense as the MMU tables can be pretty big.
-
- Would this work for a single-level VM system (or the top level of a multi-level
- system)?
-
- > > - Memory shared between any task and the VM subsystem + VM device driver
- >
- > This has to be locked during the transfer only.
-
- That depends on implementation, I guess. There must never be "circular page
- fault" on such memory (and excessive copying is probably best avoided).
-
-
- > >Of course, but it must be supported for existing software. And with the scheme
- > >outlined above I think it can be, even in such multiprocessor configurations.
- >
- > As I said, Forbid() is not just a semaphore to shared memory.
-
- Of course not. But what exactly is the observable difference, if any?
-
-
- > Michael van Elst
- > Internet: mlelstv@serpens.rhein.de
-
- --
- ============================================================================
- # Jeroen T. Vermeulen \"How are we doing kid?"/ Yes, we use Amigas. #
- #--- jtv@xs4all.nl ---\"Oh, same as always."/-- ... --#
- #jvermeul@wi.leidenuniv.nl \ "That bad, huh?" / Got a problem with that? #
-